home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / CRS / crs66.d81 / routines.prg (.txt) < prev    next >
GEOS ConVerT  |  2009-10-10  |  7KB  |  250 lines

  1. >&Routines
  2. SEQ formatted GEOS file V1.0
  3. Comm. Compat.
  4. text file
  5. BLASTER'S CONVERTER V2.5
  6. Swap File
  7. Swap1File
  8. text album  V2.1
  9. Routines for use in GEOS applications.
  10. 1` Z<
  11. ClearScrn:    lda    #2    ;use stipple pattern because it's the standard
  12.     jsr    SetPattern
  13.     jsr    i_Rectangle
  14.     .byte    0,199
  15.     .word    0,319
  16. ldy    #0    ;r6 points to the disk's name
  17. 10$:    lda    (r6),y
  18.     cmp    #$a0
  19.     beq    20$
  20.     cpy    #17
  21.     bcc    10$
  22. 20$:    lda    #0
  23.     sta    (r6),y
  24. GetDskNm:    ldx    #r6    ;r6 because it fits in well with dialog boxes
  25.     jsr    GetPtrCurDkNm    ;gets diskname and inserts a null terminator
  26.     ldy    #0    ;r6 points to the disk's name
  27. 10$:    lda    (r6),y
  28.     cmp    #$a0
  29.     beq    20$
  30.     cpy    #17
  31.     bcc    10$
  32. 20$:    lda    #0
  33.     sta    (r6),y
  34. GetDskNm:    ldx    #r6    ;r6 because it fits in well with dialog boxes
  35.     jsr    GetPtrCurDkNm    ;gets diskname and inserts a null terminator
  36.     ldy    #0    ;r6 points to the disk's name
  37. 10$:    lda    (ri
  38. CheckError:    cpx    #0    ;check x reg for disk error and display if not zero
  39.     bne    30$
  40. 30$:    stx    r15H
  41.     LoadW    r0,errorbox
  42.     jsr    DoDlgBox
  43.     jmp    EnterDeskTop
  44. errorbox:    .byte    DEF_DB_POS|1,DB_USR_ROUT
  45.     .word    ErrorPrnt
  46.     .byte    OK,9,72,0
  47. ErrorPrnt:    jsr    i_PutString
  48.     .word    80
  49.     .byte    48,24,"Disk Error:  ",27,0
  50.     MoveB    r15H,r0L
  51.     LoadB    r0H,0
  52.     lda    #%11000000
  53.     jmp    PutDecimal
  54. %11000000
  55.     jmp    PutDecimal
  56. Swtch3D:    lda    curDrive    ;checks three drives for a readable disk
  57. 5$:    add    #1
  58.     cmp    #11
  59.     bne    10$
  60.     lda    #8
  61. 10$:    pha
  62.     jsr    SetDevice
  63.     jsr    OpenDisk
  64.     cpx    #0
  65.     bne    5$
  66. ;same as on Apple GEOS
  67. ;Written by Dan Kaufman and Chris Hawley of GeoWorks, Inc.
  68. Bell:    php
  69.     ldx    CPU_DATA
  70.     LoadB    CPU_DATA,IO_IN
  71.     LoadB    $d404,0
  72.     sta    $d405
  73.     LoadB    $d418,$18
  74.     LoadB    $d406,$30
  75.     LoadW    $d402,$800
  76.     LoadB    $d415,0
  77.     sta    $d416
  78.     sta    $d417
  79.     LoadB    $d405,6
  80.     LoadB    $d406,0
  81.     LoadB    $d400,$df
  82.     LoadB    $d401,$25
  83.     LoadB    $d404,65
  84.     stx    CPU_DATA
  85. CopyLine:    
  86. CopyScreenBlock:
  87. ;same as on Apple GEOS system
  88. EraseCharacter:
  89. ;This routine does not properly handle italics style charcters.
  90.     ldx    currentMode
  91.     jsr    GetRealSize
  92.     sta    r3L
  93.     lda    r1H
  94.     sub    r3L
  95.     sta    r2L
  96.     add    r2L
  97.     sta    r2H
  98.     sty    r3L
  99.     lda    r11L
  100.     sub    r3L
  101.     sta    r3L
  102.     ldy    r11H
  103.     bcs    10$
  104. 10$:    sty    r3H
  105.     MoveW    r11,r4
  106.     jmp    Rectangle
  107. $8808
  108.     .byte    1,0
  109.     .word    $0040
  110.     .byte    1,0
  111.     .word    obj0Pointer
  112.     .byte    8,$28,$29,$2a,$2b,$2c,$2d,$2e,$2f
  113.     .word    0
  114. word    obj0Pointer
  115.     .byte    8,$28,$29,$2a,$2b,$
  116. ;same as on Apple GEOS system
  117. GetPattern:    tay
  118.     PushW    curPattern
  119.     jsr    SetPattern
  120.     ldy    #7
  121. 10$:    lda    (curPattern),y
  122.     sta    (r0),y
  123.     bpl    10$
  124.     PopW    curPattern
  125. ;same as on Apple GEOS system
  126. SetUserPattern:
  127.     jsr    SetPattern
  128.     ldy    #7
  129. 10$:    lda    (r0),y
  130.     sta    (curPattern),y
  131.     bpl    10$
  132. 2L,minutes
  133.     MoveB    r2H,seconds
  134. ;same as on Apple GEOS system
  135. SetTimeDate:
  136.     MoveB    r0L,year
  137.     MoveB    r0H,month
  138.     MoveB    r1L,day
  139.     MoveB    r1H,hour
  140.     MoveB    r2L,minutes
  141.     MoveB    r2H,seconds
  142. ;same as on Apple GEOS system
  143. SaveFontData:
  144.     ldx    #8
  145. 5$:    lda    baselineOffSet,x
  146.     sta    saveFontTab,x
  147.     bpl    5$
  148. seconds
  149.     bpl    10$
  150.     PopW    curPattern
  151. ;same as on Apple GEOS system
  152. RestoreFontData:
  153.     ldx    #8
  154. 5$:    lda    saveFontTab,x
  155.     sta    baselineOffSet,x
  156.     bpl    5$
  157. seconds
  158.     bpl    10$
  159.     PopW    curPattern
  160. ;same as on Apple GEOS system
  161. SetAlarm:    LoadB    alarmSetFlag,$ff
  162.     PushB    r0H
  163.     LoadB    r1L,10
  164.     LoadB    r0H,0
  165.     sta    r1H
  166.     ldx    #r0
  167.     ldy    #r1
  168.     jsr    Ddiv
  169.     jsr    set2alarm
  170.     sta    r1L
  171.     PopB    r0L
  172.     jsr    Ddiv
  173.     jsr    set2alarm
  174.     sta    r1H
  175.     PushB    CPU_DATA
  176.     LoadB    CPU_DATA,IO_IN
  177.     lda    cia1base+$0f
  178.     ora    #$80
  179.     sta    cia1base+$0f
  180.     CmpBI    r1L,$12
  181.     bcc    10$
  182.     sub    #$12
  183.     eor    #$80
  184. 10$:    sta    cia1base+$0b
  185.     MoveB    r1H,cia1base+$0a
  186.     PopB    CPU_DATA
  187. set2alarm:    lda    r0L
  188.     asl    a
  189.     asl    a
  190.     asl    a
  191.     asl    a
  192.     ora    r8L
  193.     asl    a
  194.     ora    r8L
  195. ;same as on Apple GEOS system
  196. ResetAlarm: LoadB    alarmSetFlag,0
  197. tern),y
  198.     bpl    10$
  199. 2L,minutes
  200.     MoveB    r2H,seconds
  201.     bpl    10$
  202.     PopW    curPattern
  203. ColorRect:    ;Pass:    r0L = left of rectangle in cards
  204.     ;    r1L = top of rectangle in cards
  205.     ;    r2L = width of rectangle in cards
  206.     ;    r2H = height of rectangle in cards
  207.     ;    r0H = color to store (in fore/back nybble format)
  208.     ldy    r1L
  209.     LoadB    r1L,0
  210.     sta    r1H
  211. 5$:    AddVW    40,r1
  212.     bne    5$
  213.     AddVW    COLOR_MATRIX,r1
  214.     AddBW    r0,r1
  215.     ldx    r2H
  216. 5$:    lda    r0H
  217.     ldy    r2L
  218. 10$:    sta    (r1),y
  219.     bpl    10$
  220.     AddVW    40,r1
  221.     bne    5$
  222. InitVars:    CmpBI    version,$12
  223.     bcs    10$
  224.     jmp    Quit
  225. 10$:    LoadB    dispBufferOn,ST_WR_FORE
  226.     MoveB    curDriv
  227. DoQuit:    jsr    GotoFirstMenu
  228.     CmpB    appDrive,curDrive    ;essential with three drives to return to
  229.     beq    10$    ;the proper drive or DeskTop will crash
  230.     jsr    SetDevice
  231.     jsr    OpenDisk
  232. 10$:    jmp    EnterDeskTop
  233. appDrive:    .block    1    ;saved on startup
  234. ClearScrn
  235. GetDskNm
  236. CheckError
  237. Swtch3D
  238. racter
  239. Character
  240. EraseCharacter
  241. GetPattern
  242. SetUserPattern
  243. SetTimeDate
  244. SaveFontData
  245. RestoreFontData
  246. SetAlarm
  247. ResetAlarm
  248. ColorRect
  249. DoQuit
  250.